# 导包
from time import sleep

from selenium import webdriver

# 获取浏览器驱动对象
driver = webdriver.Chrome()
## 最大化浏览器
driver.maximize_window()
## 隐式等待
driver.implicitly_wait(10)

driver.get("https://demo.ruoyi.vip/index")
sleep(5)
driver.find_element_by_xpath("//*[text()='系统管理']").click()
driver.find_element_by_xpath("//*[text()='用户管理']").click()

# 用户管理：进入
driver.switch_to.frame(driver.find_element_by_css_selector('[src="/system/user"]'))
# 点击新增按钮
driver.find_element_by_css_selector('[onclick="$.operate.addTab()"]').click()
# 用户管理：退出
driver.switch_to.default_content()

# 用户管理：点击切换
driver.find_element_by_css_selector('.content-tabs [data-id="/system/user"]').click()
# 用户管理：进入
driver.switch_to.frame(driver.find_element_by_css_selector('[src="/system/user"]'))
# 点击编辑按钮
driver.find_element_by_css_selector("""[onclick="$.operate.editTab('2')"]""").click()
# 用户管理：退出
driver.switch_to.default_content()

# 新增页面：进入
driver.find_element_by_css_selector('.content-tabs [data-id="/system/user/add"]').click()
driver.switch_to.frame(driver.find_element_by_css_selector('[src="/system/user/add"]'))
"""
    这个文件与 test06_iframe.py 一样没有必要查看，因为我没有教程里的资源
    目标：为什么要切换frame表单
    
    需求：
        1. 打开注册实例.html
        2. 填写主页面 页面信息
        3. 填写注册A 页面信息
        4. 填写注册B 页面信息
    
    .frame:
        * 传入 id、name 都行
        * 可以传入iframe对象
        
    切换回frame表单
        提示：常用的frame表单有两种：frame、iframe
        
        1. 为什么切换？
            当前主目录内没有iframe表单页面元素信息，不切换，找不到元素。
        2. 如何切换？
            方法：driver.switch_to.frame("id\name\element")
        3. 为什么要回到主目录
            iframe或frame只有在主目录才有相关元素信息，不回到主目录，切换语句会报错。
        4. 如何回到主目录
            方法：driver.switch_to.default_content()
        5. 提示：
            1. 切换frame时，可以使用name、id、iframe元素
    
"""
"""填写主页面"""
# 用户名
driver.find_element_by_css_selector('[name="userName"]').send_keys("admin")
# 密码
driver.find_element_by_css_selector("#password").send_keys("admin")
# 电话
driver.find_element_by_css_selector("#phonenumber").send_keys("18611112222")
# 邮件
driver.find_element_by_css_selector("#email").send_keys("123@qq.com")
sleep(5)

# 切换到默认目录
driver.switch_to.default_content()

# 切换到注册A
driver.find_element_by_css_selector('.content-tabs [data-id="/system/user/edit/2"]').click()
driver.switch_to.frame(driver.find_element_by_css_selector('[src="/system/user/edit/2"]'))

"""填写注册A"""
# 切换到编辑页面
# 用户名
driver.find_element_by_css_selector('[name="userName"]').send_keys("admin")
# 密码：编辑时没有密码
# driver.find_element_by_css_selector("#password").send_keys("admin")
# 电话
driver.find_element_by_css_selector("#phonenumber").send_keys("18611112222")
# 邮件
driver.find_element_by_css_selector("#email").send_keys("123@qq.com")
sleep(5)
# 编辑页面：退出
driver.switch_to.default_content()

# 切换到注册B
# 使用元素
driver.find_element_by_css_selector('.content-tabs [data-id="/system/user/add"]').click()
driver.switch_to.frame(driver.find_element_by_css_selector('[src="/system/user/add"]'))

"""填写注册B"""
# 用户名
driver.find_element_by_css_selector('[name="userName"]').send_keys("admin")
# 密码
driver.find_element_by_css_selector("#password").send_keys("admin")
# 电话
driver.find_element_by_css_selector("#phonenumber").send_keys("18611112222")
# 邮件
driver.find_element_by_css_selector("#email").send_keys("123@qq.com")
sleep(5)
# 编辑页面：退出
driver.switch_to.default_content()

# 暂停3秒
sleep(3)

# 关闭浏览器驱动对象
driver.close()
